home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / macros / latex209 / contrib / revtex / prsty.bst < prev    next >
Text File  |  1992-11-09  |  20KB  |  927 lines

  1. %%% ======================================================================
  2. %%%  @BibTeX-style-file{
  3. %%%     filename        = "prsty.bst",
  4. %%%     version         = "3.0",
  5. %%%     date            = "November 10, 1992",
  6. %%%     ISO-date        = "1992.11.10",
  7. %%%     time            = "15:41:54.18 EST",
  8. %%%     author          = "American Physical Society",
  9. %%%     contact         = "Christopher B. Hamlin",
  10. %%%     address         = "APS Publications Liaison Office
  11. %%%                        500 Sunnyside Blvd.
  12. %%%                        Woodbury, NY 11797",
  13. %%%     telephone       = "(516) 576-2390",
  14. %%%     FAX             = "(516) 349-7817",
  15. %%%     email           = "mis@aps.org (Internet)",
  16. %%%     supported       = "yes",
  17. %%%     archived        = "pinet.aip.org/pub/revtex,
  18. %%%                        Niord.SHSU.edu:[FILESERV.REVTEX]",
  19. %%%     keywords        = "REVTeX, version 3.0, Physical Review BibTeX
  20. %%%                        style, American Physical Society",
  21. %%%     codetable       = "ISO/ASCII",
  22. %%%     checksum        = "55300 926 2632 20018",
  23. %%%     docstring       = "This is the Physical Review--style BibTeX style
  24. %%%                        file for the American Physical Society under
  25. %%%                        REVTeX 3.0 (release of November 10, 1992).
  26. %%%
  27. %%%
  28. %%%                        The checksum field above contains a CRC-16
  29. %%%                        checksum as the first value, followed by the
  30. %%%                        equivalent of the standard UNIX wc (word
  31. %%%                        count) utility output of lines, words, and
  32. %%%                        characters.  This is produced by Robert
  33. %%%                        Solovay's checksum utility."
  34. %%% }
  35. %%% ======================================================================
  36. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  37. %                           begin prsty.bst                                 %
  38. %                             version 3.0                                   %
  39. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  40. %                                                                           %
  41. %   This file is part of the APS files in the REVTeX 3.0 distribution.      %
  42. %   Version 3.0 of REVTeX, November 10, 1992.                               %
  43. %                                                                           %
  44. %   Copyright (c) 1992 The American Physical Society.                       %
  45. %                                                                           %
  46. %   See the REVTeX 3.0 README file for restrictions and more information.   %
  47. %                                                                           %
  48. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  49. %       This is a bibtex style file to produce Physical-Review--style       %
  50. %            references for inclusion in LaTeX/REVTeX documents.            %
  51. %                Main problem: crossref handling is terrible                %
  52. %               Some documentation is available (e-mail below)              %
  53. %               Contact: C. Hamlin, mis@aps.org  (Internet)                 %
  54. %                                   mis@apsedoff (bitnet)                   %
  55. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  56.  
  57. ENTRY
  58.   { address
  59.     author
  60.     booktitle
  61.     chapter
  62.     edition
  63.     editor
  64.     howpublished
  65.     institution
  66.     journal
  67.     key
  68.     month
  69.     note
  70.     number
  71.     organization
  72.     pages
  73.     publisher
  74.     school
  75.     series
  76.     title
  77.     type
  78.     volume
  79.     year
  80.   }
  81.   {}
  82.   { label }
  83.  
  84.  
  85. INTEGERS { vol.used i.temp }
  86.  
  87. STRINGS { s t }
  88.  
  89.  
  90.  
  91. FUNCTION {output}
  92. { duplicate$ empty$
  93.     'pop$
  94.     'write$
  95.   if$
  96. }
  97.  
  98. % Note: nothing left on stack for future processing in bibitem.
  99. FUNCTION {output.bibitem}
  100. { newline$
  101.   "\bibitem{" write$
  102.   cite$ write$
  103.   "}" write$
  104.   newline$
  105. }
  106.  
  107. FUNCTION {fin.entry}
  108. { add.period$
  109.   write$
  110.   newline$
  111. }
  112.  
  113. FUNCTION {not}
  114. {   { #0 }
  115.     { #1 }
  116.   if$
  117. }
  118.  
  119. FUNCTION {and}
  120. {   'skip$
  121.     { pop$ #0 }
  122.   if$
  123. }
  124.  
  125. FUNCTION {or}
  126. {   { pop$ #1 }
  127.     'skip$
  128.   if$
  129. }
  130.  
  131. FUNCTION {field.or.null}
  132. { duplicate$ empty$
  133.     { pop$ "" }
  134.     'skip$
  135.   if$
  136. }
  137.  
  138. FUNCTION {emphasize}
  139. { duplicate$ empty$
  140.     { pop$ "" }
  141.     { "{\em " swap$ * "}" * }
  142.   if$
  143. }
  144.  
  145. FUNCTION {embolden}
  146. { duplicate$ empty$
  147.     { pop$ "" }
  148.     { "{\bf " swap$ * "}" * }
  149.   if$
  150. }
  151.  
  152. FUNCTION {paren}
  153. { duplicate$ empty$
  154.     { pop$ "" }
  155.     { "(" swap$ * ")" * }
  156.   if$
  157. }
  158.  
  159. INTEGERS { nameptr namesleft numnames }
  160. INTEGERS { etal }
  161.  
  162. FUNCTION {format.names}
  163. { 's :=
  164.   #1 'nameptr :=
  165.   s num.names$ 'numnames :=
  166.   numnames #4 >
  167.   s numnames "{ll}" format.name$ "others" = numnames #1 > and
  168.   or 'etal :=
  169.   etal
  170.     { #1 #1 + 'namesleft := }
  171.     { numnames 'namesleft := }
  172.   if$
  173.     { namesleft #0 > }
  174.     { s nameptr "{f. }{vv~}{ll}{, jj}" format.name$ 't :=
  175.       nameptr #1 >
  176.         { namesleft #1 >
  177.             { ", " * t * }
  178.             { nameptr #2 >
  179.                 { "," * }
  180.                 'skip$
  181.               if$
  182.               t "others" =
  183.               etal or
  184.                 { " {\it et~al.}" * }
  185.                 { " and " * t * }
  186.               if$
  187.             }
  188.           if$
  189.         }
  190.         't
  191.       if$
  192.       nameptr #1 + 'nameptr :=
  193.       namesleft #1 - 'namesleft :=
  194.     }
  195.   while$
  196. }
  197.  
  198. FUNCTION {format.authors}
  199. { author empty$
  200.     { "" }
  201.     { author format.names }
  202.   if$
  203. }
  204.  
  205. FUNCTION {format.edited}
  206. { editor empty$
  207.     { "" }
  208.     { "edited by " editor format.names * }
  209.   if$
  210. }
  211.  
  212. FUNCTION {format.title}
  213. { title empty$
  214.     { "" }
  215.     'title
  216.   if$
  217. }
  218.  
  219. FUNCTION {lc.first.letter}
  220. { 't :=
  221.   ""
  222.   t #1 #1 substring$
  223.   "l" change.case$ *
  224.   t #2 global.max$ substring$
  225.   *
  226. }
  227.  
  228. FUNCTION {n.dashify}
  229. { 't :=
  230.   ""
  231.     { t empty$ not }
  232.     { t #1 #1 substring$ "-" =
  233.         { t #1 #2 substring$ "--" = not
  234.             { "--" *
  235.               t #2 global.max$ substring$ 't :=
  236.             }
  237.             {   { t #1 #1 substring$ "-" = }
  238.                 { "-" *
  239.                   t #2 global.max$ substring$ 't :=
  240.                 }
  241.               while$
  242.             }
  243.           if$
  244.         }
  245.         { t #1 #1 substring$ *
  246.           t #2 global.max$ substring$ 't :=
  247.         }
  248.       if$
  249.     }
  250.   while$
  251. }
  252.  
  253.  
  254. FUNCTION {first.page}
  255. { 't :=
  256.   ""
  257.     {  t empty$ not t #1 #1 substring$ "-" = not and }
  258.     { t #1 #1 substring$ *
  259.       t #2 global.max$ substring$ 't :=
  260.     }
  261.   while$
  262. }
  263.  
  264. FUNCTION {format.date}
  265. { year empty$
  266.     { "" }
  267.     'year
  268.   if$
  269. }
  270.  
  271. FUNCTION {format.btitle}
  272. { title emphasize }
  273.  
  274. FUNCTION {tie.or.space.connect}
  275. { duplicate$ text.length$ #3 <
  276.     { "~" }
  277.     { " " }
  278.   if$
  279.   swap$ * *
  280. }
  281.  
  282. FUNCTION {either.or.check}
  283. { empty$
  284.     'pop$
  285.     { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  286.   if$
  287. }
  288.  
  289. INTEGERS { multiresult }
  290.  
  291. FUNCTION {multi.page.check}
  292. { 't :=
  293.   #0 'multiresult :=
  294.     { multiresult not
  295.       t empty$ not
  296.       and
  297.     }
  298.     { t #1 #1 substring$
  299.       duplicate$ "-" =
  300.       swap$ duplicate$ "," =
  301.       swap$ "+" =
  302.       or or
  303.         { #1 'multiresult := }
  304.         { t #2 global.max$ substring$ 't := }
  305.       if$
  306.     }
  307.   while$
  308.   multiresult
  309. }
  310.  
  311.  
  312. FUNCTION {format.pages}
  313. { pages empty$
  314.     { "" }
  315.     { pages multi.page.check
  316.         { "pp.\ " pages n.dashify * }
  317.         { "p.\ " pages * }
  318.       if$
  319.     }
  320.   if$
  321. }
  322.  
  323. FUNCTION {format.pages.a}
  324. { pages empty$
  325.     { "" }
  326.     { "page" pages first.page tie.or.space.connect }
  327.   if$
  328. }
  329.  
  330. FUNCTION {format.vol.num.pages}
  331. { volume field.or.null embolden
  332.   " " swap$ * *
  333.   pages empty$
  334.     'skip$
  335.     { duplicate$ empty$
  336.         { pop$ format.pages.a }
  337.         { ", " * pages first.page * }
  338.       if$
  339.     }
  340.   if$
  341. }
  342.  
  343. FUNCTION {if.comma}
  344. {   { ", " * }
  345.     'skip$
  346.   if$
  347. }
  348.  
  349. % pushes "" if value passed is empty$
  350. FUNCTION {push.string}
  351. { 'i.temp :=
  352.   duplicate$ empty$
  353.     { pop$ "" }
  354.     { i.temp if.comma }
  355.   if$
  356. }
  357.  
  358. % pushes "" if value passed is empty$
  359. FUNCTION {push.string.check}
  360. { 'i.temp :=
  361.   duplicate$ empty$
  362.     { pop$ "Warning: " swap$ * " missing in entry " cite$ "." * * * warning$
  363.       ""
  364.      }
  365.     { swap$ pop$ i.temp if.comma }
  366.   if$
  367. }
  368.  
  369. % adds nothing if value passed is empty$
  370. FUNCTION {add.string}
  371. { 'i.temp :=
  372.   duplicate$ empty$
  373.     { pop$ }
  374.     { * i.temp if.comma }
  375.   if$
  376. }
  377.  
  378. % adds nothing if value passed is empty$
  379. FUNCTION {add.string.check}
  380. { 'i.temp :=
  381.   duplicate$ empty$
  382.     { pop$ "Warning: " swap$ * " missing in entry " cite$ "." * * * warning$ }
  383.     { swap$ pop$ *
  384.       i.temp if.comma
  385.     }
  386.   if$
  387. }
  388.  
  389. FUNCTION {format.vol.page}
  390. { "volume" volume embolden #1 push.string.check
  391.   " " *
  392.   "pages" pages field.or.null first.page #0 add.string.check
  393.   " " *
  394. }
  395.  
  396. FUNCTION {empty.misc.check}
  397. { author empty$ title empty$ howpublished empty$
  398.   year empty$ note empty$ and and and and
  399.     { "All relevant fields are empty in " cite$ * warning$ }
  400.     'skip$
  401.   if$
  402. }
  403.  
  404. FUNCTION {format.thesis.type}
  405. { type empty$
  406.     'skip$
  407.     { pop$
  408.       type "t" change.case$
  409.     }
  410.   if$
  411. }
  412.  
  413. FUNCTION {format.tr.number}
  414. { type empty$
  415.     { "Technical Report" }
  416.     'type
  417.   if$
  418.   number empty$
  419.     { "t" change.case$ }
  420.     { type empty$
  421.         { " No.~" * }
  422.         { " " * }
  423.       if$
  424.       number *
  425.     }
  426.   if$
  427. }
  428.  
  429.  
  430. FUNCTION {format.etc}
  431. { vol.used
  432.     'skip$
  433.     { number empty$
  434.         { volume empty$
  435.             'skip$
  436.             { "Vol.~" volume * *
  437.               chapter empty$ pages empty$ note empty$ and and
  438.                   'skip$
  439.                   { ", " * }
  440.               if$
  441.             }
  442.           if$
  443.         }
  444.         { "No.~" number * *
  445.           chapter empty$ pages empty$ note empty$ and and
  446.               'skip$
  447.               { ", " * }
  448.           if$
  449.         }
  450.       if$
  451.     }
  452.   if$
  453.   chapter empty$
  454.     'skip$
  455.     { type empty$
  456.         { "Chap.~" chapter * * }
  457.         { type "u" change.case$ "l" change.case$ " " chapter * * * }
  458.       if$
  459.       pages empty$ note empty$ and
  460.         'skip$
  461.         { ", " * }
  462.       if$
  463.     }
  464.   if$
  465.   pages empty$
  466.     'skip$
  467.     { format.pages *
  468.       note empty$
  469.         'skip$
  470.         { ", " * }
  471.       if$
  472.     }
  473.   if$
  474.   note empty$
  475.     'skip$
  476.     { note lc.first.letter * }
  477.   if$
  478. }
  479.  
  480.  
  481. FUNCTION {format.pub.add.year.etc}
  482. { " ("
  483.   publisher empty$
  484.     { "PUBLISHER" "No publisher for entry " cite$ "." * * warning$ }
  485.     { publisher }
  486.   if$
  487.   ", " * *
  488.   address empty$
  489.     { "ADDRESS" "Missing address in entry " cite$ * "." * warning$ }
  490.     { address }
  491.   if$
  492.   ", " * *
  493.   year empty$
  494.    { "YEAR" }
  495.    'year
  496.   if$
  497.   ")" * *
  498.   volume empty$ not number empty$ not or title empty$ series empty$ or and
  499.   chapter empty$ not or
  500.   pages empty$ not or type empty$ not or note empty$ not or
  501.     { ", " *
  502.       format.etc
  503.     }
  504.     'skip$
  505.   if$
  506. }
  507.  
  508. FUNCTION {format.bedition}
  509. { edition empty$
  510.     { "" }
  511.     { edition "l" change.case$
  512.       duplicate$ "first" =
  513.         { pop$ "1st " }
  514.         { duplicate$ "second" =
  515.             { pop$ "2nd " }
  516.             { duplicate$ "third" =
  517.                 { pop$ "3rd " }
  518.                 'skip$
  519.               if$
  520.             }
  521.           if$
  522.         }
  523.       if$
  524.       " ed." *
  525.     }
  526.   if$
  527. }
  528.  
  529. FUNCTION {format.title.and.series.and.org}
  530. { #0 'vol.used :=
  531.   ""
  532.   duplicate$ 's :=
  533.   title empty$
  534.     'skip$
  535.     { title 's := }
  536.   if$
  537.   booktitle empty$
  538.     'skip$
  539.     { booktitle 's := }
  540.   if$
  541.   s empty$
  542.     'skip$
  543.     { type$ "inproceedings" = type$ "proceedings" = or type$ "inbook" = or
  544.         { " in " * }
  545.         { author empty$ not editor empty$ not and
  546.             { " in " * }
  547.             'skip$
  548.           if$
  549.         }
  550.       if$
  551.       s emphasize
  552.         series empty$ editor empty$ edition empty$ and and not
  553.         type$ "inproceedings" =   organization empty$ not    and
  554.         type$ "proceedings"   =   organization empty$ not    and or     or
  555.           add.string
  556.     }
  557.   if$
  558.   series empty$
  559.     'skip$
  560.     { s empty$
  561.          'skip$
  562.          { number empty$
  563.              { volume empty$
  564.                  'skip$
  565.                  { "Vol.~" volume " of " * * * #1 'vol.used := }
  566.                if$
  567.              }
  568.              { "No.~" number " in " * * * #1 'vol.used := }
  569.            if$
  570.          }
  571.       if$
  572.       series emphasize
  573.         edition empty$ not
  574.         editor empty$ not
  575.         type$ "inproceedings" =   organization empty$ not    and
  576.         type$ "proceedings" =   organization empty$ not      and
  577.         or   or   or
  578.           add.string
  579.     }
  580.   if$
  581.   type$ "inproceedings" =    type$ "proceedings" =    or
  582.     { organization empty$
  583.         'skip$
  584.         { organization editor empty$ edition empty$ and not add.string }
  585.       if$
  586.     }
  587.     'skip$
  588.   if$
  589. }
  590.  
  591.  
  592. FUNCTION {article}
  593. { output.bibitem
  594.   "author" format.authors #1 push.string.check
  595.   "journal" journal #0 add.string.check " " *
  596.   output
  597.   format.vol.page #0 push.string
  598.   " " *
  599.   "date" format.date paren #0 add.string.check
  600.   note empty$
  601.     'skip$
  602.     { ", " * note lc.first.letter * }
  603.   if$
  604.   fin.entry
  605.   crossref empty$
  606.     'skip$
  607.     { "See Ref.\ \cite{" crossref "}." * * write$ newline$ }
  608.   if$
  609. }
  610.  
  611. FUNCTION {book}
  612. { output.bibitem
  613.   format.authors #1 push.string
  614.   "title" format.title.and.series.and.org #0 add.string.check
  615.   format.bedition editor empty$ not add.string
  616.   output
  617.   format.edited #0 push.string
  618.   format.pub.add.year.etc #0 add.string
  619.   fin.entry
  620.   crossref empty$
  621.     'skip$
  622.     { "See Ref.\ \cite{" crossref "}." * * write$ newline$ }
  623.   if$
  624. }
  625.  
  626. FUNCTION {booklet}
  627. { output.bibitem
  628.   format.authors #1 push.string
  629.   "title" format.title #0 add.string.check
  630.   howpublished empty$
  631.     'skip$
  632.     { ", " howpublished * * }
  633.   if$
  634.   address empty$
  635.     'skip$
  636.     { ", " address * * }
  637.   if$
  638.   year empty$
  639.     'skip$
  640.     { " (" year ")" * * * }
  641.   if$
  642.   note empty$
  643.     'skip$
  644.     { ", " note  lc.first.letter * * }
  645.   if$
  646.   fin.entry
  647. }
  648.  
  649. FUNCTION {inbook} { book }
  650.  
  651. FUNCTION {incollection} { book }
  652.  
  653. FUNCTION {inproceedings}{ book }
  654.  
  655. FUNCTION {proceedings} { book }
  656.  
  657. FUNCTION {conference} { book }
  658.  
  659.  
  660.  
  661. FUNCTION {manual}
  662. { output.bibitem
  663.   ""
  664.   author empty$
  665.     'skip$
  666.     { format.authors #1 add.string }
  667.   if$
  668.   format.btitle
  669.     edition empty$ address empty$ organization empty$ year empty$ note empty$
  670.                            and and and and not
  671.       add.string
  672.   edition empty$
  673.     'skip$
  674.     { format.bedition
  675.         organization empty$ address empty$ year empty$ note empty$
  676.                            and and and not
  677.           add.string
  678.     }
  679.   if$
  680.   organization empty$
  681.     'skip$
  682.     { organization
  683.         address empty$ year empty$ note empty$ and and not
  684.           add.string
  685.     }
  686.   if$
  687.   address empty$
  688.     'skip$
  689.     { address   year empty$ note empty$ and not   add.string }
  690.   if$
  691.   year empty$
  692.     'skip$
  693.     { year   note empty$ not   add.string }
  694.   if$
  695.   note empty$
  696.     'skip$
  697.     { note lc.first.letter #0 add.string }
  698.   if$
  699.   fin.entry
  700. }
  701.  
  702. FUNCTION {mastersthesis}
  703. { output.bibitem
  704.   "author" format.authors #1 push.string.check
  705.   title empty$
  706.     'skip$
  707.     { "We don't use thesis titles in Phys. Rev, see \cite{"
  708.       cite$ "}" * * warning$
  709.     }
  710.   if$
  711.   "Master's thesis" format.thesis.type   #1   add.string
  712.   "school"   school   #1   add.string.check
  713.   address #1 add.string
  714.   "year" format.date   note empty$ not   add.string.check
  715.   note empty$
  716.     'skip$
  717.     { note lc.first.letter * }
  718.   if$
  719.   fin.entry
  720. }
  721.  
  722. FUNCTION {phdthesis}
  723. { output.bibitem
  724.   "author" format.authors #1 push.string.check
  725.   title empty$
  726.     'skip$
  727.     { "We don't use thesis titles in Phys. Rev, see \cite{"
  728.       cite$ "}" * * warning$
  729.     }
  730.   if$
  731.   "Ph.D. thesis" format.thesis.type   #1   add.string
  732.   "school"   school   #1   add.string.check
  733.   address #1 add.string
  734.   "year" format.date   note empty$ not   add.string.check
  735.   note empty$
  736.     'skip$
  737.     { note lc.first.letter * }
  738.   if$
  739.   fin.entry
  740. }
  741.  
  742. FUNCTION {misc}
  743. { output.bibitem
  744.   format.authors
  745.     title empty$ howpublished empty$
  746.       year empty$ note empty$ and and and not push.string
  747.   format.title
  748.     howpublished empty$ year empty$ note empty$
  749.       and and not add.string
  750.   howpublished
  751.     year empty$ note empty$ and not add.string
  752.   format.date note empty$ not add.string
  753.   note empty$
  754.     'skip$
  755.     { note
  756.       author empty$ title empty$ howpublished empty$
  757.       year empty$ and and and
  758.         'skip$
  759.         'lc.first.letter
  760.       if$
  761.       #0 add.string
  762.     }
  763.   if$
  764.   fin.entry
  765.   empty.misc.check
  766. }
  767.  
  768.  
  769. FUNCTION {techreport}
  770. { output.bibitem
  771.   "author" format.authors #1 push.string.check
  772.   title empty$
  773.     'skip$
  774.     { "We chuck the title of techreports in Phys. Rev.---\cite{"
  775.        cite$ "}." * * warning$
  776.     }
  777.   if$
  778.   format.tr.number
  779.     institution empty$ address empty$ note empty$ and and not add.string
  780.   "institution"  institution  address empty$ note empty$ and not
  781.     add.string.check
  782.   address #0 add.string
  783.   " (unpublished)" note empty$ not add.string
  784.   note empty$
  785.     'skip$
  786.     { note lc.first.letter * }
  787.   if$
  788.   fin.entry
  789. }
  790.  
  791.  
  792.  
  793. FUNCTION {unpublished}
  794. { output.bibitem
  795.   "author" format.authors   note empty$ not   push.string.check
  796.   note empty$
  797.     'skip$
  798.     { note lc.first.letter #0 add.string }
  799.   if$
  800.   " (unpublished)" *
  801.   fin.entry
  802. }
  803.  
  804. FUNCTION {default.type} { misc }
  805.  
  806.  
  807.  
  808.  
  809. MACRO {jan} {"January"}
  810. MACRO {feb} {"February"}
  811. MACRO {mar} {"March"}
  812. MACRO {apr} {"April"}
  813. MACRO {may} {"May"}
  814. MACRO {jun} {"June"}
  815. MACRO {jul} {"July"}
  816. MACRO {aug} {"August"}
  817. MACRO {sep} {"September"}
  818. MACRO {oct} {"October"}
  819. MACRO {nov} {"November"}
  820. MACRO {dec} {"December"}
  821.  
  822.  
  823.  
  824.  
  825.  
  826.  
  827. MACRO {acmcs} {"ACM Comput. Surv."}
  828. MACRO {acta} {"Acta Inf."}
  829. MACRO {applopt} {"Appl. Opt."}
  830. MACRO {cacm} {"Commun. ACM"}
  831. MACRO {ibmjrd} {"IBM J. Res. Dev."}
  832. MACRO {ibmsj} {"IBM Syst.~J."}
  833. MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
  834. MACRO {ieeetc} {"IEEE Trans. Comput."}
  835. MACRO {ieeetcad}
  836.  {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
  837. MACRO {ipl} {"Inf. Process. Lett."}
  838. MACRO {jacm} {"J.~ACM"}
  839. MACRO {jcss} {"J.~Comput. Syst. Sci."}
  840. MACRO {scp} {"Sci. Comput. Programming"}
  841. MACRO {sicomp} {"SIAM J. Comput."}
  842. MACRO {tocs} {"ACM Trans. Comput. Syst."}
  843. MACRO {tods} {"ACM Trans. Database Syst."}
  844. MACRO {tog} {"ACM Trans. Gr."}
  845. MACRO {toms} {"ACM Trans. Math. Softw."}
  846. MACRO {toois} {"ACM Trans. Office Inf. Syst."}
  847. MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
  848. MACRO {tcs} {"Theor. Comput. Sci."}
  849. MACRO {anp} {"Adv. Nucl. Phys."}
  850. MACRO {ap} {"Ann. Phys."}
  851. MACRO {arnpc} {"Annu. Rev. Nucl. Part. Sci."}
  852. MACRO {baps} {"Bull. Am. Phys. Soc."}
  853. MACRO {cp} {"Computers Phys."}
  854. MACRO {jp} {"J. Phys."}
  855. MACRO {josa} {"J. Opt. Soc. Am."}
  856. MACRO {josaa} {"J. Opt. Soc. Am. A"}
  857. MACRO {josab} {"J. Opt. Soc. Am. B"}
  858. MACRO {nim} {"Nucl. Instrum. Meth."}
  859. MACRO {np} {"Nucl. Phys."}
  860. MACRO {rmp} {"Rev. Mod. Phys."}
  861. MACRO {physica} {"Physica"}
  862. MACRO {pl} {"Phys. Lett."}
  863. MACRO {plb} {"Phys. Lett. B"}
  864. MACRO {pr} {"Phys. Rev."}
  865. MACRO {pra} {"Phys. Rev. A"}
  866. MACRO {prb} {"Phys. Rev. B"}
  867. MACRO {prc} {"Phys. Rev. C"}
  868. MACRO {prd} {"Phys. Rev. D"}
  869. MACRO {pre} {"Phys. Rev. E"}
  870. MACRO {prl} {"Phys. Rev. Lett."}
  871. MACRO {prep} {"Phys. Rep."}
  872. MACRO {ps} {"Phys. Scr."}
  873. MACRO {rpp} {"Rep. Prog. Phys."}
  874. MACRO {sjnp} {"Sov. J. Nucl. Phys."}
  875. MACRO {springmp} {"Springer Tracts in Modern Physics"}
  876. MACRO {yadfiz} {"Yad. Fiz."}
  877. MACRO {zp} {"Z. Phys."}
  878.  
  879.  
  880.  
  881. READ
  882.  
  883. STRINGS { longest.label }
  884. INTEGERS { number.label longest.label.width }
  885. FUNCTION {initialize.longest.label}
  886. { "" 'longest.label :=
  887.   #1 'number.label :=
  888.   #0 'longest.label.width :=
  889. }
  890. FUNCTION {longest.label.pass}
  891. { number.label int.to.str$ 'label :=
  892.   number.label #1 + 'number.label :=
  893.   label width$ longest.label.width >
  894.     { label 'longest.label :=
  895.       label width$ 'longest.label.width :=
  896.     }
  897.     'skip$
  898.   if$
  899. }
  900. EXECUTE {initialize.longest.label}
  901. ITERATE {longest.label.pass}
  902.  
  903.  
  904.  
  905.  
  906. FUNCTION {begin.bib}
  907. { preamble$ empty$
  908.     'skip$
  909.     { preamble$ write$ newline$ }
  910.   if$
  911.   "\begin{thebibliography}{"  longest.label  * "}" * write$ newline$
  912. }
  913.  
  914. EXECUTE {begin.bib}
  915.  
  916. ITERATE {call.type$}
  917.  
  918. FUNCTION {end.bib}
  919. { newline$
  920.   "\end{thebibliography}" write$ newline$
  921. }
  922. EXECUTE {end.bib}
  923.  
  924. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  925. %                             end prsty.bst                                 %
  926. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  927.